package com.wing.res.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wing.res.model.entity.ResProTask;
import com.wing.res.model.request.ResProProcessAddForm;
import com.wing.res.model.request.ResProQualityAddForm;
import com.wing.res.model.request.ResProTaskAddForm;
import com.wing.res.model.response.ResProTaskDetailVo;
import com.wing.res.model.response.ResProTaskSearchVo;

import java.util.List;
import java.util.Map;


/**
 * 研发任务-Service
 *
 * @version 1.1.0
 * @Author hz
 * @Date 2024-09-19 15:33
 **/
public interface ResProTaskService extends IService<ResProTask> {
    /**
     * 分页查询任务列表
     *
     * @param pg
     * @param map
     * @return
     */
    Page<ResProTaskSearchVo> pageList4app(Page<ResProTaskSearchVo> pg, Map map, String noStatus);

    /**
     * 添加研发任务
     *
     * @param resProTaskAddForm
     * @return
     */
    int add(ResProTaskAddForm resProTaskAddForm);

    /**
     * 查看任务详情
     *
     * @param id
     * @return
     */
    ResProTaskDetailVo resProTaskDetail(String id);


    /**
     * 查看任务详情
     *
     * @param skuCode 物料编码
     * @return
     */
    List<ResProTaskDetailVo> getProTaskDetailBySkuCode(String skuCode);


    /**
     * 添加产品工序
     *
     * @param resProProcessAddForm
     * @return
     */
    int addSkuProcess(ResProProcessAddForm resProProcessAddForm);

    /**
     * 添加检测项
     *
     * @param resProQualityAddForm
     * @return
     */
    int addSkuQuality(ResProQualityAddForm resProQualityAddForm);

    /**
     * 提交校对
     *
     * @param id
     * @return
     */
    int submitProofread(String id);

    /**
     * 确认信息并校对
     *
     * @param id
     * @param proofreadResult
     * @param remark
     * @return
     */
    int submitProofreadTo(String id, String proofreadResult, String remark);

    /**
     * 确认信息并审核
     *
     * @param id
     * @param auditResult
     * @param remark
     * @return
     */
    int submitAudit(String id, String auditResult, String remark);

    /**
     * 修改研发任务
     * @param resProTaskAddForm
     * @return
     */
    int updateInfo(ResProTaskAddForm resProTaskAddForm);

    /**
     * 确认  提交校对
     * @param id
     * @return
     */
    int confirm(String id);
}
